package com.base.web.core.basic.service;

import com.github.pagehelper.PageInfo;

import java.util.List;
import java.util.Map;

/**
 * Created with IntelliJ IDEA.
 * Description: 自定义的通用Service接口
 *
 * @Author: rentie
 * @Date: 2018/8/9 14:31
 */
public interface BasicService<T> {

    List<T> select(T record);

    /**
     * 条件分页查询
     *
     * @param record      实体类
     * @param currentPage 当前页
     * @param pageSize    没用显示数量
     * @return
     */
    PageInfo<T> select(T record, Integer currentPage, Integer pageSize);

    /**
     * 条件分页查询 layui定制
     * @param record      实体类
     * @param map
     *   page 当前页   limit 每页数量
     * @return
     */
    PageInfo<T> select(T record,Map<String,String> map);

    T selectByPrimaryKey(Object key);

    List<T> selectAll();

    /**
     * 无条件分页查询
     *
     * @param currentPage 当前页
     * @param pageSize    没用显示数量
     * @return
     */
    PageInfo<T> selectAll(Integer currentPage, Integer pageSize);

    /**
     * 无条件分页查询 layui定制
     *
     * @param map
     *   page 当前页   limit 每页数量
     * @return
     */
    PageInfo<T> selectAll(Map<String,String> map);

    T selectOne(T record);

    Integer selectCount(T record);

    Integer insert(T record);

    Integer insertSelective(T record);

    Integer updateByPrimaryKey(T record);

    Integer updateByPrimaryKeySelective(T record);

    Integer delete(T record);

    Integer deleteByPrimaryKey(Object key);

}